Extracting [] elements from form collection - mvc - should use icollection but have mix of types

Posted by bergin on Stack Overflow See other posts from Stack Overflow or by bergin
Published on 2010-05-30T14:10:24Z Indexed on 2010/05/30 14:42 UTC
Read the original article Hit count: 426

Filed under:
|
|
|

hi there. have looked at Phil Haacks project on books at

http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

which has been useful, but I have a mix of data types.

I use a modelview so that i can have a mix of objects, in this case: Order (ie order.id, order.date etc), Customer, SoilSamplingOrder and a list of SoilSamplingSubJobs which is like this [0].id, [0].field, [1].id, [1].field etc Perhaps I should be using ICollection instead of List? I had problems getting UpdateModel to work so I used an extract from collection method. the first 4 method calls : orderRepository.FindOrder(id); etc give the model the original to be edited. but after this point i'm a little lost in how to update the subjobs. I hope i have delineated enough to make sense of the problem.

 [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {

            Order order = orderRepository.FindOrder(id);
            Customer cust = orderRepository.FindCustomer(order.customer_id);
            IList<SoilSamplingSubJob> sssj = orderRepository.FindSubOrders(id); 
            SoilSamplingOrder sso = orderRepository.FindSoilSampleOrder(id);

            try
            {

                UpdateModel(order, collection.ToValueProvider());

                UpdateModel(cust, collection.ToValueProvider());

                UpdateModel(sso, collection.ToValueProvider());



                IList<SoilSamplingSubJob> sssjs = orderRepository.extractSSSJ(collection);

                foreach (var sj in sssjs)
                    UpdateModel(sso, collection.ToValueProvider());


                orderRepository.Save();

                return RedirectToAction("Details", new { id=order.order_id});

            }
            catch
            {
                return View();
            }
        }

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about form